# -*- coding: utf-8 -*-

from inspect import isclass, ismethod, isfunction


def immutable():
    """
    不可变对象

    :return:
    """

    i = 10
    j = 10
    # 小整数类型公用对象
    # i和j的地址是相同的
    print(id(i))
    print(id(j))

    pass


def reference(parameter):
    """引用传递"""
    parameter = parameter + parameter
    return parameter


def question():
    # 多个单词的字符串
    s = 'hello world'
    print(id(s))

    # 变量存储的是对象引用
    l = [s]
    print(l)
    print(id(l[0]))

    # 修改s值，s的地址变了
    s = 'pycharm ipython'
    print(s)
    print(id(s))
    # 但不影响l中的元素值
    print(l)
    # l中的元素地址也没变
    print(id(l[0]))

    pass


def function(parameter: str) -> int:
    """指定函数的参数类型和返回值类型"""
    return len(parameter)


def multiply():
    """乘法"""
    m1 = 2 * 3
    m2 = '2' * 3
    m3 = ['2'] * 3

    print('2', '3')
    print(('2', '3'))

    pass





if __name__ == '__main__':
    """
    程序启动入口
    """

    # 变量
    variable = 10

    # 运算
    a = 2 // 2  # 整除:1
    print('整除 :', a)
    b = 2 ** 2  # 乘方:4
    print('乘方 :', b)

    # python中计算位数无限，不存在超出范围的情况，
    # 对于特别大的数据使用字符串存储

    # immutable()

    # parameter = 1000
    # print(reference(parameter))
    # print(parameter)

    # question()

    multiply()



    pass
